Space based augmentation system with hierarchy for determining geographical corrections source

ABSTRACT

Systems, devices and methods are provided for determining the appropriate or desired geographical correction source for SBAS corrections. One aspect provided herein is a method. According to one method embodiment, a Space Based Augmentation System (SBAS) correction message is received from a selected SBAS satellite. It is determined whether at least one criterion is satisfied for using the selected SBAS satellite as a correction source and then processing the correction message received therefrom. A second SBAS satellite is selected from which to receive SBAS correction messages upon determining that at least one criterion is not satisfied for using the selected SBAS satellite as a correction source. One example of SBAS is the Wide Area Augmentation System (WAAS) used in North America Other aspects and embodiments are provided herein.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is related to the following co-pending, commonlyassigned U.S. patent application: “Method and System for MinimizingStorage and Processing of Ionospheric Grid Point CorrectionInformation,” Ser. No. 09/969,698, now U.S. Pat. No. 6,552,680, which isby the same inventors and is herein incorporated by reference.

FIELD OF THE INVENTION

The present invention relates generally to Space Based AugmentationSystems (SBAS) and methods to improve the accuracy, availability, andintegrity of Global Positioning System Service. In particular, thepresent invention is directed to SBAS with a hierarchy for determining adesired source for providing geographical correction messages.

BACKGROUND OF THE INVENTION

The Global Positioning System (GPS) is a worldwide radio-navigationsystem formed from a constellation of satellites and correspondingground stations. Currently, approximately twenty-four satellites areused in the GPS. Each satellite continually broadcasts its location inspace along with the current time from an internal clock. GPS receiversare able to determine their position by receiving and analyzing signalstransmitted from the satellites. Two-dimensional locations are able tobe determined by analyzing signals from three satellites, andthree-dimensional locations are able to be determined by analyzingsignals from four or more satellites. A GPS receiver determines itslocation by determining its distance from the GPS satellites based onthe received signals and then performing a geometric triangulation onthese distance measurements. GPS will be described in more detail below.

Although the current GPS has been successful, it has severalshortcomings that affect the accuracy of positioning calculations. Forexample, GPS satellite signals are subject to errors caused byionospheric disturbances and satellite orbit discrepancies. Ionosphericand tropospheric refraction can slow satellite signals and cause carriersignals and codes to diverge. Because ionospheric disturbances varygreatly from location to location, these errors are difficult to correctwith civilian-type GPS receivers. These and other errors are describedin more detail below.

Differential GPS (DGPS) can improve the accuracy of positionmeasurements. DGPS uses an extra stationary receiver at a known locationas a reference point. The stationary receiver measures GPS signal errorby comparing its exact, known location with the location derived fromthe GPS signals. The reference receiver sends timing error measurementsto mobile GPS receivers that allow these GPS receivers to correct forerrors and get a more accurate position measurement. DGPS assumes thatthe reference point and other receivers will encounter similar errors.One example of DGPS is the Radio Technical Commission for Maritime(RTCM) Services, provided by the U.S. Coast Guard, which provide DGPScorrection signals.

Space Based Augmentation Systems (SBAS) have been developed to furtheraccount for errors and better improve the accuracy, availability andintegrity of the GPS. Wide Area Augmentation System (WAAS) is one typeof Space Based Augmentation System (SBAS) used in North America. TheFederal Aviation Administration (FAA) developed and uses WAAS to aid inlanding aircraft. The FAA also has plans to develop a Local AreaAugmentation System (LAAS) with reference receivers located near runwaysto further aid in landing aircraft, particularly in zero visibilityconditions. One benefit of WAAS is that it provides extended coverageboth inland and offshore compared to a land-based DGPS. Another benefitof WAAS is that it does not require additional DGPS receiving equipment.

Other governments are developing SBAS. In Asia, the SBAS is referred toas the Japanese Multi-Functional Satellite Augmentation System (MSAS).In Europe, the SBAS is referred to as the Euro Geostationary NavigationOverlay Service (EGNOS). Eventually, GPS users around the world likelywill have access to precise position data using these and other SBASsystems.

As will be described in more detail below, the WAAS is based on anetwork of wide area ground reference stations (WRSs) that are linked tocover a service area including the entire U.S. and some areas of Canadaand Mexico. The number of WRSs is currently about twenty-five. The WRSsare precisely surveyed so that the exact location of each WRS is known.Signals from GPS satellites are received and analyzed by the WRSs todetermine errors in the signals, including errors caused by theionospheric disturbances described above. Each WRS in the network relaysits data to a wide area master station (WMS) where correctioninformation is computed. The WMS calculates correction messages for eachGPS satellite based on correction algorithms and assesses the overallintegrity of the system. The correction messages are then uplinked toGeostationary Communication Satellites (GEOs), also referred to hereinas SBAS satellites or more particularly as WAAS satellites, via a grounduplink system (GUS). The SBAS satellites broadcast the messages to GPSreceivers within the coverage area of the SBAS satellites on the samefrequency as the GPS signals (e.g. L1, 1575.42 MHz). GPS receivers withSBAS capabilities are capable of using the SBAS correction message tocorrect for GPS satellite signal errors caused by ionosphericdisturbances and other inaccuracies. The SBAS satellites also act asadditional navigation satellites for the GPS receivers, thus, providingadditional navigation signals for position determination.

With respect to WAAS, the correction messages currently are uplinked totwo WAAS satellites. In the future, additional WAAS satellites areintended to be incorporated in the system. The GPS receiver is capableof being positioned within the coverage area of both of these WAASsatellites such that the receiver is capable of receiving WAAScorrection messages from any one or both of these WAAS satellites.Additional GEOs are capable of being used for a more comprehensive SBASthat provides a larger coverage and more redundancy. As such, a GPSreceiver is capable of being positioned within the coverage area of twoor more of these SBAS satellites such that the receiver is capable ofreceiving SBAS correction messages from any one of these SBAS satellitesor from two or more of these SBAS satellites. Multiple WAAS satellitesmay be available in the future as potential sources of correctioninformation.

The WAAS satellites broadcast several types of correction messages, andthe information contained therein requires a substantial amount ofmemory in a GPS/WAAS receiver. In order to minimize the amount of memoryrequired to store WAAS correction information, when multiple (i.e. twoor more) WAAS satellites are available to be used by a GPS/WAASreceiver, it is desirable to obtain information only for the satellitethat is the most reliable source of this information. The accuracy,desirability and/or equivalency of SBAS correction messages are notnecessarily the same for the various SBAS correction sources.Accordingly, there exists a need for an improved method and system fordetermining the appropriate or desired geographical correction sourcefor SBAS corrections and to benefit from the SBAS data while using aminimal amount of memory and system resources.

SUMMARY OF THE INVENTION

The above mentioned problems with the accuracy, availability andintegrity of GPS service, along with the accuracy, desirability and/orequivalency of SBAS correction messages, are addressed by the presentinvention and will be understood by reading and studying the followingspecification. Systems, devices and methods are provided for determiningthe appropriate or desired geographical correction source for SBAScorrections. The systems and methods of the present invention offervarious criteria, along with a hierarchy of these criteria, used indetermining the appropriate or desired geographical correction source.

One aspect provided herein is a method. According to one embodiment, aSpace Based Augmentation System (SBAS) correction message is receivedfrom a selected SBAS satellite. It is determined whether at least onecriterion is satisfied for receiving the SBAS correction message fromthe selected SBAS satellite. Another SBAS satellite is selected fromwhich to receive SBAS correction messages upon determining that at leastone criterion is not satisfied for receiving the SBAS correction messagefrom the selected SBAS satellite.

One embodiment provides a method in a global positioning system (GPS)for determining a wide area augmentation system (WAAS) correctionssource. According to this embodiment, signals from at least two WAASsatellites are synchronized. One WAAS satellite from which to receiveWAAS correction messages is selected. A WAAS correction message isreceived from a selected WAAS satellite. It is determined whether atleast one criterion is satisfied for receiving the WAAS correctionmessage from the selected WAAS satellite. Upon determining that at leastone criterion is not satisfied for receiving the WAAS correction messagefrom the selected WAAS satellite, another WAAS satellite is selectedfrom which to receive WAAS correction messages.

According to one embodiment, it is determined whether at least onecriterion is satisfied by: determining whether the selected SBASsatellite is sending SBAS correction messages; upon determining that theselected SBAS satellite is sending SBAS correction messages; determiningwhether the SBAS correction message received from the selected SBASsatellite is reliable (i.e. the selected satellite has a higher validmessage rate than another satellite, for example); and upon determiningthat the SBAS correction message received from the selected SBASsatellite is reliable, determining whether a differential position canbe created from the SBAS correction message.

One aspect provided herein is a data structure for use by a GPS receiverdevice in making SBAS corrections. One embodiment of the data structureincludes a field representing an SBAS correction message, and a fieldrepresenting at least one SBAS satellite selection criterion. Accordingto one embodiment, the field representing an SBAS correction messageincludes a field representing an SBAS satellite identity, and a fieldrepresenting SBAS correction data provided by the SBAS satelliteidentity. According to one embodiment, the field representing at leastone SBAS satellite selection criterion includes a field representing anSBAS-correction-sent criterion, a field representing anSBAS-correction-reliable criterion, and a field representing adifferential-position-calculation-capable criterion.

One aspect provided herein is a GPS receiver device. One embodiment ofthe device includes a processor, a memory adapted to communicate to theprocessor, and a GPS receiver. The GPS receiver is adapted to receiveGPS signals and SBAS correction signals, and further is adapted tocommunicate to the processor. The device is adapted to determine adesired SBAS correction source using at least one predeterminedcriterion.

These and other aspects, embodiments, advantages, and features of thepresent invention will be set forth in part in the description whichfollows, and in part will become apparent to those skilled in the art byreference to the following description of the invention and referenceddrawings or by practice of the invention. The aspects, advantages, andfeatures of the invention are realized and attained by means of theinstrumentalities, procedures, and combinations particularly pointed outin the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a representative view of a Global Positioning System (GPS);

FIG. 2 is a chart plotting the progressiveness of GPS accuracy,

FIG. 3 is a representative view of a GPS with a Space Based AugmentationSystem (SBAS), particularly with a Wide Area Augmentation System (WAAS)used in North America;

FIG. 4 is a representative view of Geostationary CommunicationSatellites (GEOs) and their overlapping coverage area;

FIG. 5 is a representative view of a suitable GPS device forimplementing the present invention;

FIG. 6 is a flow diagram illustrating one method embodiment according tothe present invention;

FIG. 7 is a flow diagram illustrating in further detail portions of theflow diagram of FIG. 6 for one embodiment one the present invention;

FIG. 8 is a flow diagram illustrating in further detail portions of theflow diagram of FIG. 6 for one embodiment of the present invention;

FIG. 9 is a flow diagram illustrating in further detail portions of theflow diagram of FIG. 6 for one embodiment of the present invention;

FIG. 10 is a flow diagram illustrating in further detail portions of theflow diagram of FIG. 6 for one embodiment of the present invention;

FIG. 11 is a flow diagram illustrating in further detail portions of theflow diagram of FIG. 6 for one embodiment of the present invention;

FIG. 12 is a flow diagram illustrating one method embodiment accordingto the present invention;

FIG. 13 is a flow diagram illustrating in further detail portions of theflow diagram of FIG. 12 for one embodiment of the present invention;

FIG. 14 is a representation of a data structure used by a GPS device indetermining the satellite to be used for SBAS corrections;

FIG. 15 is a representation of another data structure used by a GPSdevice in determining the satellite to be used for SBAS corrections;

FIGS. 16A and 16B are representations of other data structures used by aGPS device in determining the satellite to be used for SBAS corrections;and

FIG. 17 is a representation of a data structure used by a GPS device indetermining the satellite to be used for SBAS corrections.

DETAILED DESCRIPTION OF THE INVENTION

In the following detailed description of the invention, reference ismade to the accompanying drawings which form a part hereof, and in whichis shown, by way of illustration, specific embodiments in which theinvention may be practiced. The embodiments are intended to describeaspects of the invention in sufficient detail to enable those skilled inthe art to practice the invention. Other embodiments may be utilized andchanges may be made without departing from the scope of the presentinvention. The following detailed description is, therefore, not to betaken in a limiting sense, and the scope of the present invention isdefined only by the appended claims, along with the full scope ofequivalents to which such claims are entitled.

The present invention is drawn to systems, devices and methods fordetermining the appropriate or desired geographical correction sourcefor Space Based Augmentation System (SBAS) corrections. The systems andmethods of the present invention offer a hierarchy used in determiningthe appropriate or desired geographical correction source in SBAScorrections.

FIG. 1 is a representative view of a global positioning system (GPS).The GPS 100 includes a plurality of satellites 120 and a GPS receiverdevice 140. The plurality of satellites 120 are in orbit about the Earth124. The orbit of each satellite 120 is not necessarily synchronous withthe orbits of other satellites 120 and, in fact, is likely asynchronous.The GPS receiver device 140 of the present invention is shown receivingspread spectrum GPS satellite signals 160 from the various satellites120.

The spread spectrum signals 160 continuously transmitted from eachsatellite 120 utilize a highly accurate frequency standard accomplishedwith an extremely accurate atomic clock. Each satellite 120, as part ofits data signal transmission 160, transmits a data stream indicative ofthat particular satellite 120. It will be appreciated by those skilledin the relevant art that the GPS receiver device 140 must acquire spreadspectrum GPS satellite signals 160 from at least three satellites 120for the GPS receiver device 140 to calculate its two-dimensionalposition by triangulation. Acquisition of an additional signal 160,resulting in signals 160 from a total of four satellites 120, permitsGPS receiver device 140 to calculate its three-dimensional position.

Currently, the constellation of GPS satellites 120 includesapproximately twenty-four GPS satellites, twenty-one of which are activeand three of which are operating spares. The satellites 120 are in ahigh orbit about 12,000 miles above the Earth's surface. The satellites120 are arranged in their orbits such that the GPS receiver 140 on Earthis capable of receiving signals from at least four GPS satellites 120 atany given time if the signals are not otherwise blocked by buildings andthe like. The satellites are traveling at speeds of about 7,000 miles anhour, so as to circle the earth once every twelve hours. They have smallrocket boosters to keep them flying in the correct path.

Each GPS satellite 120 uses several frequencies (designated L1, L2,etc.) to continually broadcast the location of the satellite 120 inspace along with the current time from an internal clock. Civilian GPSreceivers 140 use the L1 frequency of 1575.42 MHz in the UHF band. Thesignals 160 travel in a “line of sight” (LOS); that is, the signal willpass through clouds, glass and plastic, but will not go through mostsolid objects such as buildings and mountains. The satellite signals 160are very low power signals, on the order of 10 to 50 watts.

L1 contains two “pseudorandom” signals, each of which are a complexpattern of digital code. The transmitted code is referred to as apseudorandom code because it looks like a noise signal. The codetransmitted by each satellite is unique, such that the GPS receiver 140is capable of identifying the GPS satellites 120 that transmit thepseudorandom signals. The message transmitted from the satellites 120 toa receiver 140 contains the satellite orbital and clock information,general system status messages and an ionospheric delay model. Thesatellite signals are timed using highly accurate atomic clocks. Thesecoded signals are used to calculate the travel time from the satelliteto the GPS receiver on the Earth. This travel time is also called theTime of Arrival. Multiplying the travel time by the speed of light (lessany delay as the signal travels through the atmosphere) provides thesatellite range; i.e. the distance from the satellite to the GPSreceiver.

GPS receivers 140 are able to determine their position by receiving andanalyzing signals 160 transmitted from the satellites 120. The GPSreceiver 140 has to know the location of the satellites 120, and thedistance between the satellites 120 and the receiver 140. To determineits location, a GPS receiver 140 scans for satellite signals 160 untilit has acquired signals 160 from three or more satellites 120.Two-dimensional locations are able to be determined by analyzing signals160 from three satellites 120, and three-dimensional locations are ableto be determined by analyzing signals 160 from four or more satellites120.

The GPS receiver 140 knows where the satellites 120 are located in spaceby identifying two types of coded information from the pseudorandomsatellite signals 160. One type of information is called “almanac” data.Another type of information contained in the pseudorandom satellitesignals is called “ephemeris” data.

Almanac data contains the approximate positions or locations of thesatellites, and is continuously transmitted as coded information by thesatellite and stored in the memory of the GPS receiver 140. Thus, theGPS receiver 140 knows the orbits of the satellites and the locationwhere each satellite is supposed to be. The almanac data is periodicallyupdated with new information.

Ephemeris data is corrected orbital data. The GPS satellites are capableof traveling slightly out of orbit. Ground monitor stations track theorbits, altitude, location and speed of the GPS satellites. The groundstations send the orbital data to the GPS master control station, whichin turn sends corrected data up to the satellites. Ephemeris data isonly sent every four to six hours.

The GPS receiver 140 determines its location by determining its distancefrom the GPS satellites 120 based on the received signals and thentriangulating these distance measurements. The satellite 120 and the GPSreceiver 140 generate the same code, and the receiver 140 compares thecode that it generates against the code generated by the GPS satellite120. The signal delay or shift needed for the code of the GPS receiver140 to the code of the GPS satellite 120 represents the time requiredfor the signal to propagate from the GPS satellite 120 to the GPSreceiver 140. The distance, or range, from the GPS receiver 140 to theGPS satellite 120 is capable of being derived from this time. Thisdistance calculation is repeated for at least three satellites in orderto determine a two-dimensional position and for at least four satellitesin order to determine a three-dimensional location.

It is noted that the clock in the GPS receiver 140 is not an atomicclock, and as such does not keep the time as precisely as the clocks ofthe satellites 120. Therefore, each distance measurement is corrected toaccount for the clock error in the GPS receiver 140. This distance orrange correction attributable to the clock error is termed a pseudorange.

Although the current GPS has been successful, it has severalshortcomings. For example, GPS satellite signals are subject to errorscaused by ionospheric disturbances and satellite orbit discrepancies.Ionospheric and tropospheric refraction can slow satellite signals andcause carrier signals and codes to diverge. Because ionosphericdisturbances vary greatly from location to location, these errors aredifficult to correct with civilian-type GPS receivers. For example, theposition errors of civilian GPS receivers are due to the accumulatederrors of one or more of the following sources.

One error source is ionosphere and troposphere delays. The satellitesignal slows as it passes through the atmosphere. GPS uses a built-in“model” that calculates an average, but not an exact amount of delay.

Another error source is signal multi-path, which occurs when the GPSsignal reflects off of objects such as tall buildings and large rocksurfaces before reaching the receiver. The reflection increases thetravel time of the signal.

Another error source is receiver clock errors caused by slight timingerrors in the built-in clock in the receiver. This error is corrected bydetermining pseudorange corrections.

Another error source is orbital errors, also known as ephemeris errors,which are inaccuracies of the satellite's reported location. As providedearlier, GPS determines ephemeris errors about every four to six hours.The GPS satellite sends ephemeris data along with the almanac data tothe GPS receiver. However, this ephemeris data may be four to six hoursold when received by the GPS receiver.

Another error involves the number of visible satellites. The accuracy ofthe receiver is better when the receiver is able to “see” moresatellites, i.e. is able to receive more satellite signals. However,buildings, underground and underwater areas, terrain, electronicinterference, and the like, are able to block signal reception.

Another error source involves satellite geometry, or shading, whichrefers to the relative position of the satellites at any given time.Ideal satellite geometry exists when the satellites are located at wideangles relative to each other. Poor geometry results when the satellitesare located in a line or in a tight grouping.

Another error source, which occurred until the year 2000, is the UnitedStates military's intentional degradation of the GPS signal. Thisintentional degradation, also known as Selective Availability (SA),accounted for the majority of the error in the range.

FIG. 2 is a chart plotting the progressiveness of GPS accuracy.According to this chart, GPS accuracy prior to the year 2000, when SAwas operating, was within about 100 meters. GPS accuracy after SA wasturned off improved dramatically to within about 15 meters. SBAS, suchas WAAS, has been developed to accurately account for theabove-described errors and improve the accuracy, availability andintegrity of the GPS even further. As such, GPS with WAAS accuracycurrently is within about 3 meters.

FIG. 3 is a representative view of a GPS with a Space Based AugmentationSystem (SBAS), particularly with a Wide Area Augmentation System (WAAS)used in North America. The WAAS is based on a network of wide areaground reference stations (WRSs) 320 that are linked to cover a servicearea including the entire U.S. and some areas of Canada and Mexico. Thenumber of WRSs 320 is currently about twenty-five. The WRSs areprecisely surveyed so that the exact location of each WRS is known.Signals from GPS satellites 310 are received and analyzed by the WRSs todetermine errors in the signals, including errors caused by theionospheric disturbances described above. Each WRS 320 in the networkrelays its data to a wide area master station (WMS) 330 where correctioninformation is computed. The WMS 330 calculates correction messages foreach GPS satellite 310 based on correction algorithms and assesses theoverall integrity of the system. The correction messages are thenuplinked to a pair of Geostationary Communication Satellites (GEOs) 350via a ground uplink system (GUS) 355. The GEOs 350 broadcast themessages on the same frequency as GPS (L1, 1575.42 MHz) to GPS receiverswithin the coverage area of the WAAS satellites. The GEOs 350 are alsoreferred to herein as SBAS or WAAS satellites.

One type of information that is included in the correction messages fromthe WAAS satellites 350 is ionospheric correction data. Ionosphericcorrections are broadcast for selected ionospheric grid points generallyspaced at 5 degree intervals in both latitude and longitude directions.GPS receivers 340 use the WAAS correction data to correct for GPSsatellite signal errors caused by ionospheric disturbances and otherinaccuracies. The communications satellites 350 also act as additionalnavigation satellites for the GPS receivers 340, thus, providingadditional navigation signals for position determination.

FIG. 4 is a representative view of Geostationary CommunicationSatellites (GEOs) and their overlapping coverage area. GEOs are capableof being used as SBAS satellites, such as WAAS satellites, EGNOSsatellites and MSAS satellites for example. The coverage area for theseSBAS satellites overlap. In a WAAS system, for example, portions of theUnited States are covered by both the POR satellite and the AOR-Wsatellite. The illustrated AOR-E satellite and IOR satellite, which maybe used in EGNOS, MSAS or other SBAS, also share coverage areas withother SBAS satellites. If and/or when they become available, other SBASsatellites may be used to provide redundancy in the signal coverage.

Due to the overlapping coverage area, the GPS receiver device often willbe able to receive SBAS correction signals from more than one SBASsatellite. The corrections contained within these signals can and oftenwill vary. A choice is made as to which SBAS satellite should be used asthe geographical correction source.

Another problem, aside from simply listening to the correct satellite,is the shear volume of transmission correction data. As mentioned above,one type of information that is included in the correction messages fromthe GEOs is ionospheric correction data. Ionospheric corrections arebroadcast for selected ionospheric grid points generally spaced at 5degree intervals in both latitude and longitude directions. One approachis to store the correction points in a two dimensional array containinga total of 2,592 elements. Many GPS receivers, including, for example,GPS receivers used in avionics applications and portable GPS receiversused for recreational and sport applications have limited memory andprocessing power and therefore cannot quickly and efficiently store andprocess all 2,592 ionospheric grid point correction elements. Thisproblem is addressed by the Applicants' co-pending and commonly assignedU.S. patent application: “Method and System for Minimizing Storage andProcessing of Ionospheric Grid Point Correction Information,” Ser. No.09/969,698, now U.S. Pat. No. 6,552,680. This problem is compounded if agiven receiver is taking corrections from more than one satellite in anarea where the GEOs coverage overlaps. As such, for the purpose oflimiting the shear volume of correction data as well as for the purposeof selecting the most accurate correction data, it is desirable to makean informed decision for selecting a satellite from which SBAS signalsare to be received. There are several reasons for requiring the abilityto select another SBAS satellite, or swap SBAS satellites in the currenttwo SBAS satellite system. One reason is that the currently-selectedSBAS satellite is not broadcasting corrections. Another reason is thatthe currently-selected SBAS satellite has a lower valid message ratethan another SBAS satellite due to factors such as being blocked byterrain, buildings or vegetation or being lower on the horizon.

The present invention provides an improved SBAS and method which allowsa given GPS receiver to correctly identify and selectively receive thosetransmission correction signals to provide consistent and accurate SBAScorrections. Moreover, the improved SBAS and method of the presentinvention benefits from the SBAS data while utilizing a minimal amountof memory and system resources.

The present invention may be implemented with and/or incorporated intoany global positioning system (GPS) device, including portable, handheldGPS navigation units, GPS-enabled wireless telephones, GPS-enabledpersonal digital assistants, GPS-enabled laptop computers, avionicsequipment that incorporates GPS receivers, marine equipment thatincorporates GPS receivers, etc.

FIG. 5 is a representative view of a suitable GPS device forimplementing the present invention. The GPS device 510 illustrated anddescribed herein is only one example of a suitable device or environmentand is not intended to suggest any limitation as to the scope of use orfunctionality of the present invention. Neither should the GPS device510 be interpreted as having any dependency or requirement relating toany one or a combination of components illustrated in this exemplary GPSdevice 510.

As shown in FIG. 5, one embodiment of the GPS device 510 includes aprocessor 512 coupled with an input device 514, memory 516, and adisplay 518. The processor is further coupled with a GPS receiver 520that is in turn coupled with a GPS antenna 522. In one embodiment, theprocessor 512 may also be coupled with a cellular phone transceiver 524and corresponding antenna 526. It will be understood that the input maybe any type of input, such as a keypad, switches, touch screen,voice-input (such as a microphone), mouse or joystick, etc. As one ofordinary skill in the art will understand upon reading this disclosure,the electronic components shown in FIG. 5 can be embodied as computerhardware circuitry or as a computer-readable program, or a combinationof both.

The present invention may also be described in the context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, objects, components, data structures, etc. that performparticular tasks or implement particular abstract data types.

Processor 512 typically accesses at least some form of computer-readablemedia. Computer-readable media include any available media that isaccessible by the GPS system. By way of example and not limitation,computer-readable media include computer storage media andcommunications media. Computer storage media includes volatile andnon-volatile, removable and non-removable media implemented in anymethod or technology for storage of information such ascomputer-readable instructions, data structures, program modules orother data. Communication media specifically embodies computer-readableinstructions, data structures, program modules or other data in amodulated data signal such as a carrier wave or transport mechanism andincludes any information delivery media. The term “modulated datasignal” means a signal that has one or more of its characteristics setor changed in such a manner as to encode information in the signal. Byway of example and not limitation, communication media includes wiredmedia such as a wired network or direct-wired connection, and wirelessmedia such as acoustic, RF, infrared and other wireless media.Combinations of any of the above would also be included within the scopeof computer-readable media.

FIG. 6 is a flow diagram illustrating one method embodiment according tothe present invention. A GPS receiver device such as shown in FIG. 5,for example, synchronizes to signals from at least two WAAS satellitesat 602. One of ordinary skill in the art will understand, upon readingand comprehending this disclosure, that other SBAS satellites such asEGNOS and MSAS satellites may be used in place of the WAAS satellites.Proceeding to 604, a WAAS satellite is selected as the satellite fromwhich to receive correction messages. For example, according to oneembodiment, the first WAAS satellite that is synchronized is selected asthe initial satellite from which to receive correction messages.According to another embodiment, ionospheric bounding box criteria isused as the criteria for selecting the initial satellite from which toreceive correction messages. Ionospheric boundaries are discussed inApplicants' co-pending, commonly assigned, U.S. patent applicationentitled “Method and System for Minimizing Storage and Processing ofIonospheric Grid Point Correction Information,” Ser. No. 09/969,698, nowU.S. Pat. No. 6,552,680. This application has previously beenincorporated by reference herein.

Proceeding to 606, a WAAS correction message, or messages, is receivedfrom the selected WAAS satellite. Data included in WAAS correctionmessages includes mask data and correction data. At 608, it isdetermined whether a criterion, or criteria, for receiving correctionsfrom the selected WAAS satellite is satisfied. Upon determining that thecriterion/criteria is satisfied, the process proceeds back to 606 tocontinue to receive WAAS correction messages from the selected WAASsatellite. Upon determining that the criterion is not satisfied, theprocess proceeds to 610 where another WAAS satellite is selected priorto proceeding back to 606 to receive WAAS correction messages from thenewly selected WAAS satellite. The WAAS correction messages areprocessed to provide a WAAS-corrected GPS position when the criterion issatisfied. A dotted line box 612 is drawn around the elements 606, 608,and 610, and provides a point of reference for the details pillillustrated below in FIGS. 7-11.

FIG. 7 is a flow diagram illustrating in further detail portions of theflow diagram of FIG. 6 for one embodiment of the present invention. Thedotted line box 712 corresponds generally to the dotted line box 612illustrated in FIG. 6. According to this embodiment, at 706, a WAAScorrection message, or messages, is received from the selected WAASsatellite. At 714, it is determined whether the selected satellite issending corrections. Currently, the correction messages provided by theWAAS satellites indicate whether or not they are sending correctionsusing a bit set in the almanac message (Message Type 17). That is, theWAAS almanac messages (Message Type 17) contain information about thehealth of the WAAS satellites. This health information includes separatebits. A first bit indicates whether the satellite's ranging is on oroff. A second bit indicates whether the satellite's corrections are onor off. A third bit indicates whether the satellite's broadcastintegrity is on or off. One embodiment of the present inventionevaluates the bit that indicates whether the satellite's corrections areon or off. Upon determining that the selected satellite is sendingcorrections, the process proceeds back to 706 to continue to receiveWAAS correction messages from the selected WAAS satellite. Upondetermining that the selected satellite is not sending corrections, theprocess proceeds to 710 where another WAAS satellite is selected. Theprocess then proceeds back to 706 to receive WAAS correction messagesfrom the newly selected WAAS satellite.

FIG. 8 is a flow diagram illustrating in further detail portions of theflow diagram of FIG. 6 for one embodiment of the present invention. Thedotted line box 812 corresponds generally to the dotted line box 612illustrated in FIG. 6. According to this embodiment, at 806, a WAAScorrection message, or messages, is received from the selected WAASsatellite. At 816, it is determined whether the received WAAS correctionmessage is reliable for the selected WAAS satellite. In one embodiment,the reliability of the WAAS correction message is determined using aCyclic Redundancy Check (CRC). CRC is a process used to check theintegrity of a block of data. A 24-bit CRC is generated at the SBASsatellite. The value of the 24-bit CRC depends on the number of ones inthe data block. The 24-bit CRC is appended on to the data block. The GPSreceiver device makes a similar calculation and compares its resultswith the transmitted 24-bit CRC. If there is a difference, it isdetermined that the WAAS correction message is not reliable. If there innot a difference, it is determined that the WAAS correction message isreliable. In one embodiment, which will be described in more detailbelow, valid message counters are used to evaluate whether the selectedsatellite or another satellite is sending more reliable correctionmessages. Upon determining that the received WAAS correction message isreliable for the selected WAAS satellite, the process proceeds back to806 to continue to receive WAAS correction messages from the selectedWAAS satellite. Upon determining that the received WAAS correctionmessage is not reliable for the selected WAAS satellite, the processproceeds to 810 where another WAAS satellite is selected prior toproceeding back to 806 to receive WAAS correction messages from thenewly selected WAAS satellite.

FIG. 9 is a flow diagram illustrating in further detail portions of theflow diagram of FIG. 6 for one embodiment of the present invention. Thedotted line box 912 corresponds generally to the dotted line box 612illustrated in FIG. 6. Furthermore, the dotted line box 916 correspondsgenerally to element 816 (i.e. determining whether the received WAAScorrection message is reliable for the selected WAAS satellite) in FIG.8. It is noted that reliability information regarding a correctionmessage from a previously selected WAAS satellite is capable of beingsaved for later comparison to a currently selected WAAS satellite. Also,it is noted that correction messages from two or more WAAS satellitesare capable of being received concurrently, or relatively concurrently,such that the reliability of the signals are capable of being compared.According to various embodiments, this reliability information iscapable of being weighted or otherwise characterized as appropriate inorder to perform a desired comparison for a desired application.

According to this embodiment, at 906, a WAAS correction message, ormessages, is received from the selected WAAS satellite. Once thereceived WAAS signals have been assessed, a WAAS satellite is selectedas the preferred satellite from which to use and process correctionmessages. At 918, it is determined whether the WAAS correction messagefor the presently selected satellite is less reliable than a WAAScorrection message for a previously selected satellite or a presentlyunselected satellite. Upon determining that the WAAS correction messagefor the selected satellite is not less reliable than a WAAS correctionmessage for a previously selected or a presently unselected satellite,the process proceeds back to 906 to continue to receive WAAS correctionmessages from the selected WAAS satellite. Upon determining that theWAAS correction message for the selected satellite is less reliable thana WAAS correction message for an unselected satellite, the processproceeds to 920 where it is determined whether a stability threshold hasbeen exceeded. Such a stability threshold provides a hysteresis effectthat prevents the receiver device from quickly toggling between two WAASsatellites for relatively inconsequential differences in the reliabilityof the WAAS correction signal. Upon determining that a stabilitythreshold has not been exceeded, the process proceeds back to 906 tocontinue to receive WAAS correction messages from the selected WAASsatellite. Upon determining that a stability threshold has beenexceeded, the process proceeds to 910 where another WAAS satellite isselected prior to proceeding back to 906 to receive WAAS correctionmessages from the newly selected WAAS satellite.

For example, as will be described in more detail below, one embodimentprovides a valid message counter for a Current WAAS Correction Satellite(CWCS) and a valid message counter for a Potential WAAS CorrectionSatellite (PWCS). If the PWCS valid message counter is greater than theCWCS valid message counter by a threshold (such as 10%), the PWCSbecomes the CWCS.

FIG. 10 is a flow diagram illustrating in further detail portions of theflow diagram of FIG. 6 for one embodiment of the present invention. Thedotted line box 1012 corresponds generally to the dotted line box 612illustrated in FIG. 6. According to this embodiment, at 1006, a WAAScorrection message, or messages, is received from the selected WAASsatellite. At 1022, it is determined whether a differential position canbe created from the WAAS correction message provided by the selectedWAAS satellite. According to one embodiment, the determination at 1022is periodically performed. Upon determining that a differential positioncan be created from the WAAS correction message provided by the selectedWAAS satellite, the process proceeds back to 1006 to continue to receiveWAAS correction messages from the selected WAAS satellite. Upondetermining that a differential position cannot be created from the WAAScorrection message provided by the selected WAAS satellite, the processproceeds to 1010 where another WAAS satellite is selected prior toproceeding back to 1006 to receive WAAS correction messages from thenewly selected WAAS satellite.

For example, as will be described in more detail below, timer variablesare used to periodically determine whether a differential position canbe created from the WAAS correction messages provided by the selectedWAAS satellite. SBAS corrections includes several corrections that occuroften (or with a quick update rate), and several corrections that occurwith a lower update rate such as approximately every five minutes. Inone embodiment, the determination whether a differential position can becreated is made approximately every ten minutes, which is approximatelytwice as long as the period for the SBAS correction(s) with the slowestupdate rate.

FIG. 11 is a flow diagram illustrating in further detail portions of theflow diagram of FIG. 6 for one embodiment of the present invention. Thedotted line box 1112 corresponds generally to the dotted line box 612illustrated in FIG. 6. A GPS receiver device such as shown in FIG. 5,for example, synchronizes to signals from at least two WAAS satellitesat 1102. One of ordinary skill in the art will understand, upon readingand comprehending this disclosure, that other SBAS satellites such asEGNOS and MSAS satellites may be used in place of the WAAS satellites.Proceeding to 1104, a WAAS satellite is selected as the satellite fromwhich to receive correction messages. For example, according to oneembodiment, the first WAAS satellite that is synchronized is selected asthe initial satellite from which to receive correction messages.According to another embodiment, ionospheric bounding box criteria isused as the criteria for selecting the initial satellite from which toreceive correction messages. One embodiment of a hierarchy fordetermining a geographical corrections source is illustrated within box1112. According to this embodiment, at 1106, a WAAS correction message,or messages, is received from the selected WAAS satellite.

At 1114, it is determined whether the selected satellite is sendingcorrections. Currently, the correction messages provided by the WAASsatellites indicate whether or not they are sending corrections. One ofordinary skill in the art will understand that there are other ways fordetermining whether the selected satellite is sending corrections. Upondetermining that the selected satellite is sending corrections, theprocess proceeds to 1116 to determine whether another criterion issatisfied for receiving the SBAS correction message from the selectedSBAS satellite. Upon determining that the selected satellite is notsending corrections, the process proceeds to 1110 where another WAASsatellite is selected prior to proceeding back to 1106 to receive WAAScorrection messages from the newly selected WAAS satellite.

At 1116, it is determined whether the received WAAS correction messageis reliable for the selected WAAS satellite. Upon determining that thereceived WAAS correction message is reliable for the selected WAASsatellite, the process proceeds to 1122 to determine whether anothercriterion is satisfied for receiving the SBAS correction message fromthe selected SBAS satellite. Upon determining that the received WAAScorrection message is not reliable for the selected WAAS satellite, theprocess proceeds to 1110 where another WAAS satellite is selected priorto proceeding back to 1106 to receive WAAS correction messages from thenewly selected WAAS satellite.

At 1122, it is determined whether a differential position can be createdfrom the WAAS correction message provided by the selected WAASsatellite. According to one embodiment, the determination at 1122 isperiodically performed. That is, the determination at 1122 is not alwaysperformed in this embodiment, but rather is performed as desired as maybe appropriate for the system resources. Upon determining that adifferential position can be created from the WAAS correction messageprovided by the selected WAAS satellite, the process completes thehierarchy for determining geographical corrections source and proceedsback to 1106 to continue to receive WAAS correction messages from theselected WAAS satellite. Upon determining that a differential positioncannot be created from the WAAS correction message provided by theselected WAAS satellite, the process proceeds to 1110 where another WAASsatellite is selected prior to proceeding back to 1106 to receive WAAScorrection messages from the newly selected WAAS satellite. One ofordinary skill in the art will understand, upon reading andcomprehending this disclosure, that various embodiments include variouscombinations of the determinations 1114, 1116 and 1122.

FIG. 12 is a flow diagram illustrating one method embodiment accordingto the present invention. It is noted that the term WAAS may be replacedwith a more general term SBAS throughout this description. According tothis method, a swap timer variable is set to a system timer of theGPS/WAAS receiver unit at 1210. Valid message counters are set to zeroat 1212. In one embodiment for a two WAAS satellite system, the validmessage counters include a Current WAAS Correction Satellite (CWCS)counter and a Potential WAAS Correction Satellite (PWCS) counter. At1214, the GPS/WAAS receiver unit attempts to acquire signals from twoWAAS satellites. The process proceeds to 1216 upon acquiring a firstWAAS satellite signal and proceeds to 1218 upon acquiring a second WAASsatellite signal. The process beginning with that represented by 1216and the process beginning with that represented by 1218 are capable ofbeing performed relatively independent of each other.

At 1216, a first WAAS satellite signal is acquired. The first WAASsatellite is set to the CWCS as the currently selected satellite at1220. The CWCS message is decoded at 1222. At 1224, it is determinedwither the CWCS message is valid. Upon determining the CWCS message isvalid, the process proceeds to 1226 where the CWCS valid message counteris incremented.

At 1218, a second WAAS satellite signal is acquired. The second WAASsatellite is set to PWCS as a potentially selected satellite at 1228.The PWCS message is decoded at 1230. At 1232, it is determined whetherthe PWCS message is valid. Upon determining the PWCS message is valid,the process proceeds to 1234 where the PWCS valid message counter isincremented.

At 1236, a hierarchy of comparisons of the CWCS and the PWCS isperformed, and the WAAS satellites are swapped (such that the firstsatellite is now PWCS and the second satellite is now CWCS) if variouscriteria are met. This process is illustrated further with respect toFIG. 13. The process proceeds to 1238, where it is determined whether analmanac message (Message Type 17 in particular) is received such thatthe health of the satellites can be determined. Upon determining that analmanac message has been received, the process proceeds to 1240 wherethe correction bit is updated for each satellite whose health isreported in the almanac message. The process returns to decode messages,as represented by the node A.

FIG. 13 is a flow diagram illustrating in further detail portions of theflow diagram of FIG. 12 for one embodiment of the present invention. Theillustrated flow diagram generally corresponds to performing thehierarchy of comparisons 1236 in FIG. 12. The illustrated process forthis embodiment of performing the hierarchy of comparisons proceedsthrough three general criteria, as identified by the dotted line boxes1314, 1316 and 1322, which generally correspond to the three criteria1114, 1116 and 1122 illustrated in FIG. 11.

The WAAS almanac messages (Message Type 17) contain information aboutthe health of the WAAS satellites. This health information includesseparate bits. A first bit indicates whether the satellite's ranging ison or off. A second bit indicates whether the satellite's correctionsare on or off. A third bit indicates whether the satellite's broadcastintegrity is on or off. One embodiment of the present inventionevaluates the bit that indicates whether the satellite's corrections areon or off. At 1342, it is determined whether the CWCS correction bit isoff, and at 1344, it is determined whether the PWCS correction bit ison. If the correction health bit for the CWCS is off and the correctionhealth bit for the PWCS is on, the PWCS becomes the CWCS, as representedat 1346. If not, the process proceeds to criteria 1316.

At 1348, it is determined whether the PWCS valid message counter exceedsa minimum threshold. In one embodiment, this threshold is 60 validmessages. Upon determining that the PWCS valid message counter does notexceed a minimum threshold, the process proceeds to reset the CWCS andthe PWCS valid message counters to zero at 1351, and then proceeds tothe next criteria 1322. Upon determining that the PWCS valid messagecounter exceeds a minimum threshold, the process proceeds to 1350, whereit is determined whether the PWCS valid message counter is greater thanthe CWCS valid message counter by a threshold. In one embodiment, thisthreshold is 10%. That is, the PWCS valid threshold is 10% greater thanthe CWCS. Upon determining that the PWCS valid message counter isgreater than a CWCS valid message counter by a threshold, the processproceeds to reset the CWCS and the PWCS valid message counters to zeroat 1349, and proceeds to 1346 where the PWCS and the CWCS are swapped(the PWCS becomes the CWCS and the CWCS becomes the PWCS). Upondetermining that the PWCS valid message counter is not greater than theCWCS valid message counter by a threshold, the process proceeds to resetthe CWCS and the PWCS valid message counters to zero at 1351, and thenproceeds to the next criteria 1322.

At 1352, a current timer variable is set to the system timer of theGPS/WAAS receiver unit. It is determined at 1354 whether the swap timervariable is greater than the current timer variable, which was set tothe system timer at an earlier time, by a threshold. According to oneembodiment, the threshold is ten minutes, which is approximately twotimes longer than the period associated with the WAAS corrections thathave the slowest update rate. Upon determining that the swap timervariable is not greater than the current timer variable by a threshold,the process proceeds to 1356 where the CWCS (the currently selectedsatellite) is maintained as the CWCS. Upon determining that the swaptimer variable is greater than the current timer variable by athreshold, the process proceeds to 1358 where the swap timer variable isset to be equal to the current timer variable. At 1360, it is determinedif each presently tracked GPS satellite has valid CWCS WAAS corrections.At 1362, it is determined whether there are sufficient CWCS correctionsavailable to complete a differential fix of the GPS/WAAS receiver unit.If no satellite presently being tracked by the GPS/WAAS receiver wasdetermined to have valid corrections collected from the CWCS or if sofew corrections have been collected from the CWCS that a differentialposition fix cannot be computed, the process proceeds to 1346 where thePWCS and the CWCS are swapped (the PWCS becomes the CWCS and the CWCSbecomes the PWCS). If it is determined that there are sufficient CWCScorrections available to complete a differential fix of the GPS/WAASreceiver unit, the process proceeds to 1356 where the CWCS (thecurrently selected satellite) is maintained as the CWCS.

FIG. 14 is a representation of a data structure used by a GPS device indetermining the satellite to be used for SBAS corrections. Such a datastructure 1460 is capable of being used to perform the processrepresented generally by 714 in FIG. 7, 1114 in FIG. 11 and 1314 in FIG.13, for example. In one embodiment, the data structure 1460 includes afield 1462 representing a variable array of health information for 19SBAS satellites. Although there are currently only two WAAS satellites,assignments have been provided such that 19 WAAS satellites are capableof being used. The array of health information includes ranging healthinformation, correction health information, and broadcast integrityhealth information. The data structure 1460 further includes a field1464 that represents a CWCS variable index and a field 1466 thatrepresents a PWCS variable index that can be used to index into thearray of health information.

FIG. 15 is a representation of another data structure used by a GPSdevice in determining the satellite to be used for SBAS corrections.Such a data structure 1560 is capable of being used to perform theprocess represented generally by 816 in FIG. 8, 916 in FIG. 9, 1116 inFIG. 11 and 1316 in FIG. 13, for example. In one embodiment, the datastructure 1560 includes a field 1568 representing a variable array oftwo valid WAAS (or SBAS) message counters. One of the counters is a CWCS(or CSCS) valid message counter and the other is a PWCS (or PSCS) validmessage counter. These valid message counters are used to monitor thereliability of the two WAAS satellites. The data structure 1560 furtherincludes a field 1564 that represents a CWCS variable index and a field1566 that represents a PWCS variable index that can be used to indexinto the array of valid message counters. The data structure 1560further includes a field 1570 representing a threshold constant thatrepresents the PWCS to CWCS valid message counter difference. Forexample, when the threshold constant is 10%, the PWCS will become theCWCS if the PWCS valid message counter is 10% larger than the CWCS validmessage counter. According to one embodiment, the data structure 1560further includes a field 1572 representing a threshold constant thatrepresents a PWCS valid message counter minimum threshold. For example,when the PWCS valid message counter minimum threshold constant is 60,the comparisons between the CWCS and the PWCS are made only afterreceiving 60 PWCS valid messages.

FIGS. 16A and 16B are representations of other data structures used by aGPS device in determining the satellite to be used for SBAS corrections.Such a data structure 1660 is capable of being used to perform theprocess represented generally by 1022 in FIG. 10, 1122 in FIG. 11 and1322 in FIG. 13, for example. In one embodiment, the data structure 1660includes a field 1674 representing a variable that contains the currenttimer, a field 1676 that contains the swap timer, and a field 1678representing a threshold constant that represents the current timer toswap timer difference threshold. For example, a ten minute timerdifference threshold is a sufficient amount of time for the GPS/WAASreceiver device to receive even the WAAS correction data with theslowest update rate. In FIG. 16A, the data structure 1660 also includesa field 1680 representing a variable that represents whether anysatellite presently tracked has valid corrections collected from theCWCS. In FIG. 16B, the data structure 1660 also includes a field 1682representing a variable that represents a presently computed positionfix type, and a field 1684 representing constants that are assigned tothe presently computed positions fix type variable. In one embodiment,the data structure includes a field 1680 representing a variable thatrepresents whether any satellite presently tracked has valid correctionscollected from the CWCS, a field 1682 representing a variable thatrepresents a presently computed position fix type, and a field 1684representing constants that are assigned to the presently computedpositions fix type variable.

The computed position fix types include: no position fix; atwo-dimensional position fix with no differential corrections; athree-dimensional position fix with no differential corrections; atwo-dimensional position fix with differential corrections; and athree-dimensional position fix with differential corrections. Atwo-dimensional position fix indicates that the GPS/WAAS receiver unitis receiving signals from three GPS satellites, and a three-dimensionalposition fix indicates that the GPS/WAAS receiver unit is receivingsignals from four or more GPS satellites. The position fix is withdifferential corrections if the GPS/WAAS receiver device is receivingWAAS corrections for the GPS satellites that are being used for theposition fix.

FIG. 17 is a representation of a data structure used by a GPS device indetermining the satellite to be used for SBAS corrections. Such a datastructure 1760 is capable of being used to perform the processrepresented generally by 1114, 1116 and 1122 in FIG. 11 and 1314, 1316and 1322 in FIG. 13, for example. The data structure 1760 includes allof the fields represented in FIGS. 14, 15, 16A and 16B. A description ofthese fields will not be repeated here. This data structure 1760 iscapable of being used in a hierarchy for determining a desiredcorrections source. One of ordinary skill in the art will appreciatethat various data structures can be created for use in the varioushierarchies for determining a desired corrections source by includingvarious combinations of the fields represented in the data structures ofFIGS. 14, 15, 16A and 16B.

As one of ordinary skill in the art will understand upon reading andcomprehending this disclosure, any one or more of the above features canbe combined into a particular embodiment of the invention. Likewise, inthe invention any one or a combination of the above functions can beoptionally de-activated in the device. One of ordinary skill in the artwill further understand that the method includes using a computeraccessible medium having a set of computer executable instructionsoperable to perform the method. Other embodiments may be utilized andstructural, logical, and electrical changes may be made withoutdeparting from the scope of the present invention.

In some embodiments, the methods provided above are implemented as acomputer data signal embodied in a carrier wave or propagated signal,that represents a sequence of instructions which, when executed by aprocessor, such as processor 512 in FIG. 5, cause the processor toperform the respective method. In other embodiments, methods providedabove are implemented as a set of instructions contained on acomputer-accessible medium, such as memory 516 in FIG. 5, capable ofdirecting a processor, such as processor 512 in FIG. 5, to perform therespective method. In varying embodiments, the medium is a magneticmedium, an electronic medium, or an optical medium.

The system of the present invention includes software operative on aprocessor to perform methods according to the teachings of the presentinvention. One of ordinary skill in the art will understand, uponreading and comprehending this disclosure, the manner in which asoftware program can be launched from a computer readable medium in acomputer based system to execute the functions defined in the softwareprogram. One of ordinary skill in the art will further understand thevarious programming languages which may be employed to create a softwareprogram designed to implement and perform the methods of the presentinvention. The programs can be structured in an object-orientation usingan object-oriented language such as Java, Smalltalk or C++, and theprograms can be structured in a procedural-orientation using aprocedural language such as COBOL or C. The software componentscommunicate in any of a number of means that are well-known to thoseskilled in the art, such as application program interfaces (API) orinterprocess communication techniques. However, as will be appreciatedby one of ordinary skill in the art upon reading this disclosure, theteachings of the present invention are not limited to a particularprogramming language or environment.

CONCLUSION

The above systems, devices and methods have been described, by way ofexample and not by way of limitation, with respect to systems, devicesand methods to determine the appropriate or desired SBAS correctionsource. That is, the systems, devices and methods improve the accuracy,availability and integrity of GPS. The systems, devices and methods ofthe present invention offer various criteria, along with a hierarchy ofthese criteria, used in determining the appropriate or desiredgeographical correction source.

Although specific embodiments have been illustrated and describedherein, it will be appreciated by those of ordinary skill in the artthat any arrangement which is calculated to achieve the same purpose maybe substituted for the specific embodiment shown. This application isintended to cover any adaptations or variations of the presentinvention. It is to be understood that the above description is intendedto be illustrative, and not restrictive. Combinations of the aboveembodiments, and other embodiments will be apparent to those of skill inthe art upon reviewing the above description. The scope of the inventionincludes any other applications in which the above systems, devices andmethods are used. The scope of the invention should be determined withreference to the appended claims, along with the full scope ofequivalents to which such claims are entitled.

1. A method, comprising: receiving Space Based Augmentation System (SBAS) correction messages from a selected SBAS satellite; determining whether at least one criterion is satisfied for using the selected SBAS satellite as a correction source; and upon determining that the at least one criterion is not satisfied for using the selected SBAS satellite as a correction source, selecting a second SBAS satellite to be used as a correction source from which to receive SBAS correction messages, wherein determining whether at least one criterion is satisfied for using the selected SBAS satellite as a correction source includes determining whether the SBAS correction messages received from the selected SBAS satellite are reliable, and wherein determining whether the SBAS correction message received from the selected satellite is reliable includes: determining whether the SBAS correction messages received from the selected satellite are less reliable than SBAS correction messages received from the second SBAS satellite; and upon determining that the SBAS correction messages received from the selected satellite are less reliable than SBAS correction messages received from a second SBAS satellite, determining whether a stability threshold is exceeded.
 2. A method, comprising: receiving Space Based Augmentation System (SBAS) correction messages from a selected SBAS satellite; determining whether at least one criterion is satisfied for using the selected SBAS satellite as a correction source; and upon determining that the at least one criterion is not satisfied for using the selected SBAS satellite as a correction source, selecting a second SBAS satellite to be used as a correction source from which to receive SBAS correction messages, wherein determining whether at least one criterion is satisfied for using the selected SBAS satellite as a correction source includes: determining whether the selected SBAS satellite is sending SBAS correction messages; upon determining that the selected SBAS satellite is sending SBAS correction messages, determining whether the SBAS correction messages received from the selected SBAS satellite are reliable; and upon determining that the SBAS correction messages received from the selected SBAS satellite are reliable, determining whether a differential position can be created from the received SBAS correction messages.
 3. A method in a global positioning system (GPS) for determining a Wide Area Augmentation System (WAAS) corrections source, comprising: synchronizing to signals from at least two WAAS satellites; selecting one WAAS satellite from which to receive WAAS correction messages; receiving WAAS correction messages from the selected WAAS satellite; determining whether at least one criterion is satisfied for using the selected WAAS satellite as a correction source; and upon determining that the at least one criterion is not satisfied for using the selected WAAS satellite as a correction source, selecting a second WAAS satellite to be used as a correction source from which to receive WAAS correction messages wherein determining whether at least one criterion is satisfied for using the selected WAAS satellite as a correction source includes: determining whether the selected WAAS satellite is sending WAAS correction messages; upon determining that the selected WAAS satellite is sending WAAS correction messages, determining whether the WAAS correction messages received from the selected WAAS satellite are reliable; and upon determining that the WAAS correction messages received from the selected WAAS satellite are reliable, determining whether a differential position can be created from the received WAAS correction message.
 4. A computer-readable medium having computer-executable instructions, wherein a computer executes the instructions to: synchronize to signals from at least two Space Based Augmentation System (SBAS) satellites; select one SBAS satellite from which to receive correction messages; receive correction messages from the selected SBAS satellite; determine whether at least one criterion is satisfied for using the selected SBAS satellite as a correction source; and select a second SBAS satellite to be used as a correction source from which to receive correction messages if the at least one criterion is not satisfied for receiving correction messages from the selected SBAS satellite, wherein the computer-executable instructions adapted to determine whether at least one criterion is satisfied for using the selected SBAS satellite as a correction source include: computer-executable instructions adapted to determine whether the selected SBAS satellite is sending SBAS correction messages; computer-executable instructions adapted to determine whether the SBAS correction messages received from the selected SBAS satellite are reliable if it is determined that the selected SBAS satellite is sending SBAS correction messages; and computer-executable instructions adapted to determine whether a differential position can be created from the received SBAS correction messages if it is determined that the SBAS correction messages received from the selected SBAS satellite are reliable.
 5. A data structure for use by a Global Positioning System (GPS) receiver device in making Space Based Augmentation System (SBAS) corrections, comprising: a field representing a variable array for a Current SBAS Correction Source (CSCS) valid SBAS message counter and a Potential SBAS Correction Source (PSCS) valid SBAS message counter; a field representing a CSCS variable index; a field representing a PSCS variable index; and a field representing a threshold constant for a difference between the CSCS valid SBAS message counter and the PSCS valid SBAS message counter.
 6. The data structure of claim 5, further comprising a field representing a threshold constant for a minimum PSCS valid MSG counter.
 7. A data structure for use by a Global Positioning System (GPS) receiver device in making Space Based Augmentation System (SBAS) corrections, comprising: a field representing a current timer variable; a field representing a swap timer variable; a field representing a threshold constant for a difference between the current timer variable and the swap timer variable; and a field representing a variable that indicates whether any presently-tracked satellite has valid corrections collected from a Current SBAS Correction Source (CSCS).
 8. The data structure of claim 7, further comprising: a field representing a variable that indicates a presently-computed position fix type; and a field representing a constant assigned to the presently-computed position fix type variable.
 9. A data structure for use by a Global Positioning System (GPS) receiver device in making Space Based Augmentation System (SBAS) corrections, comprising: a field representing a current timer variable; a field representing a swap timer variable; a field representing a threshold constant for a difference between the current timer variable and the swap timer variable; a field representing a variable that indicates a presently-computed position fix type; and a field representing a constant assigned to the presently-computed position fix type variable.
 10. The data structure of claim 9, further comprising a field representing a variable that indicates whether any presently-tracked satellite has valid corrections collected from a Current SBAS Correction Source (CSCS).
 11. A data structure for use by a Global Positioning System (GPS) receiver device in making Space Based Augmentation System (SBAS) corrections, comprising: a field representing a Current SBAS Correction Source (CSCS) variable index; a field representing a Potential SBAS Correction Source (PSCS) variable index a field representing a variable array of health information for SBAS satellites; a field representing a variable array for a CSCS valid SBAS message counter and a PSCS valid SBAS message counter; a field representing a threshold constant for a difference between the CSCS valid SBAS message counter and the PSCS valid SBAS message counter; a field representing a threshold constant for a minimum PSCS valid message counter; a field representing a current timer variable; a field representing a swap timer variable; a field representing a threshold constant for a difference between the current timer variable and the swap timer variable; a field representing a variable that indicates whether any presently-tracked satellite has valid corrections collected from a CSCS; a field representing a variable that indicates a presently-computed position fix type; and a field representing a constant assigned to the presently-computed position fix type variable. 